package Java_2_56;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;



/**
 * 迭代器（Iterator）：是Java语言解决集合遍历的一个工具。提供一种方法访问集合中各个元素，而不暴露该集合的内部实现细节
 *
 */
public class TestZuChe {
	public static void main(String[]args) {
		//创建HashSet集合，用于存放车辆
		Set vehSet=new HashSet();
		//创建两个轿车对象，两个卡车对象，并加入HashSet集合中
		Vehicle c1=new Car("战神","长城");
		Vehicle c2=new Car("跑得快","红旗");
		Vehicle t1=new Truck("大力士","5吨");
		Vehicle t2=new Truck("大力士二代","10吨");
		//用vehSet.add()方法增加集合的元素
		vehSet.add(c1);
		vehSet.add(c2);
		vehSet.add(t1);
		vehSet.add(t2);
		//使用迭代器循环输出
		Iterator it=vehSet.iterator();//?
		while(it.hasNext()) {
			System.out.println("***显示集合中元素信息***");
			Object obj=it.next();
			if(obj instanceof Car) {
				Car car=(Car)obj;
				//调用Car类的特有方法getBrand（)
				System.out.println("该车是轿车，其品牌为："+car.getBrand());
			}else {
				Truck truck=(Truck)obj;
				//调用Truck类的特有方法get（)
				System.out.println("该车是卡车，其吨位为："+truck.getTonnage());
			}
			//调用Vehicle类方法show()
			((Vehicle)obj).show();
		}
	}
}
